{
 "cells": [
  {
   "cell_type": "markdown",
   "id": "3173e4f7",
   "metadata": {},
   "source": [
    "# **<font size=4 color=#BB3D00 face=微软雅黑>常见的周期性波形</font>**"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "ed722237",
   "metadata": {},
   "source": [
    "## <font size=3  face=微软雅黑>**※Matlab案例**</font> "
   ]
  },
  {
   "cell_type": "markdown",
   "id": "b1d7b9be",
   "metadata": {},
   "source": [
    "网址：https://ww2.mathworks.cn/help/signal/gs/common-periodic-waveforms-1.html   \n",
    "描述：本案例由2个示例构成：   \n",
    "### - <font size=3 color=DarkOrChid>示例1：锯齿波</font>\n",
    "### - <font size=3 color=DarkOrChid>示例2：方波</font>"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "5e24d07e",
   "metadata": {},
   "source": [
    "<font size=3 face=微软雅黑>**※Python案例**</font> "
   ]
  },
  {
   "cell_type": "markdown",
   "id": "dec192e3",
   "metadata": {},
   "source": [
    "针对以上案例，采用Python语言实现。"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "6cbe6f93",
   "metadata": {},
   "source": [
    "### - <font size=3 color=DarkOrChid>示例1：锯齿波</font>"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 1,
   "id": "654e0c6d",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 1080x360 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "import numpy as np\n",
    "import matplotlib.pyplot as plt\n",
    "\n",
    "\n",
    "def rect_square_wave(origin=0, size=20,x_unit=1, y0=0, y1=1):\n",
    "    d = []\n",
    "    for  start in range(origin, origin + x_unit * size, x_unit):\n",
    "        d.append((start, y1))\n",
    "        middle = start + x_unit \n",
    "        d.append((middle, y0))\n",
    "        end = start + x_unit\n",
    "        d.append((end, y0))\n",
    "\n",
    "    return d\n",
    "\n",
    "d = np.array(rect_square_wave(origin=0, size=10, x_unit=1, y0=1, y1=-1))\n",
    "plt.figure(figsize=(15, 5))\n",
    "plt.plot(d[:, 0], d[:, 1])\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "b31b5932",
   "metadata": {},
   "source": [
    "### - <font size=3 color=DarkOrChid>示例2：方波</font>"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 2,
   "id": "ab28120d",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 1080x360 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "import numpy as np\n",
    "import matplotlib.pyplot as plt\n",
    "\n",
    "\n",
    "def rect_square_wave(origin=0, size=20, ratio=0.5, x_unit=1, y0=0, y1=1):\n",
    "    d = []\n",
    "    for  start in range(origin, origin + x_unit * size, x_unit):\n",
    "        d.append((start, y0))\n",
    "        middle = start + x_unit * ratio\n",
    "        d.append((middle, y0))\n",
    "        d.append((middle, y1))\n",
    "        end = start + x_unit\n",
    "        d.append((end, y1))\n",
    "\n",
    "    return d\n",
    "\n",
    "d = np.array(rect_square_wave(origin=0, size=10, ratio=0.4, x_unit=1, y0=1, y1=-1))\n",
    "plt.figure(figsize=(15, 5))\n",
    "plt.plot(d[:, 0], d[:, 1])\n",
    "plt.show()\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "id": "64851491",
   "metadata": {},
   "outputs": [],
   "source": []
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": "Python 3 (ipykernel)",
   "language": "python",
   "name": "python3"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 3
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython3",
   "version": "3.9.12"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 5
}
